package CONTROLADOR;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.table.TableModel;

import MODELO.ModeloCategoria;
import MODELO.ModeloIngrediente;
import VISTA.frmIngredientes;

public class ControladorIngredientes implements ActionListener{
	private frmIngredientes frmIngredientes;
	private ModeloIngrediente modeloIngrediente;
	
	public static void main(String[] args) {
		new ControladorIngredientes();
	}
    

	public ControladorIngredientes() {
		this.frmIngredientes = new frmIngredientes();
		this.frmIngredientes.setVisible(true);
		frmIngredientes.addListener(this);
		this.modeloIngrediente = new ModeloIngrediente();
		cargarTabla();
	}
	
	public void cargarTabla() {
		TableModel m = frmIngredientes.getTblIngredientes().getModel();	
		int i =0;
		while(i< frmIngredientes.getTblIngredientes().getRowCount()) {
			m.setValueAt("", i, 0);
			m.setValueAt("", i, 1);
			m.setValueAt("", i, 2);
			i++;
		}
		Vector<ModeloIngrediente> v = modeloIngrediente.listar();
		i =0;
		for (ModeloIngrediente modelo: v) {
			m.setValueAt(modelo.getCodigo(), i, 0);
			m.setValueAt(modelo.getDescripcion(), i, 1);
			m.setValueAt(modelo.getStock(), i, 2);
			i++;
		}
		
	}
	
	
	public void actionPerformed(ActionEvent evt) {
		if(evt.getActionCommand().equals("Cancelar")){
			frmIngredientes.limpiarNuevo();
			frmIngredientes.bloquearNuevo();
			frmIngredientes.limpiarEntrada();
			frmIngredientes.bloquearEntrada();
			cargarTabla();
		}
		else if (evt.getActionCommand().equals("Registrar Nuevo")){
			frmIngredientes.habilitarNuevo();
		}
		else if(evt.getActionCommand().equals("Aceptar")){
			if(!frmIngredientes.getTxtCodigoIngrediente().getText().isEmpty() && !frmIngredientes.getTxtStockMinimo().getText().isEmpty() && !frmIngredientes.getTxtDescripcionIngredientes().getText().isEmpty())
			{
				modeloIngrediente.setCodigo(frmIngredientes.getTxtCodigoIngrediente().getText());
				modeloIngrediente.setDescripcion(frmIngredientes.getTxtDescripcionIngredientes().getText());
				modeloIngrediente.setStatus("A");
				modeloIngrediente.setStock(Double.parseDouble(frmIngredientes.getTxtStockMinimo().getText()));
				if(modeloIngrediente.registar()){
					frmIngredientes.limpiarNuevo();
					cargarTabla();
					frmIngredientes.mostrarMensaje("Ingrediente registrado");
				}
				else
					frmIngredientes.mostrarMensaje("Codigo registrado");
			} 
			else
				frmIngredientes.mostrarMensaje("Campos vacios");
		}
		else if(evt.getActionCommand().equals("Compra")){
			if(!frmIngredientes.getTxtCodigoIngrediente().getText().isEmpty()){		
				modeloIngrediente.setCodigo(frmIngredientes.getTxtCodigoIngrediente().getText());
				modeloIngrediente.setStatus("A");
				if(modeloIngrediente.consultar()){
					frmIngredientes.getTxtStockMinimo().setText(""+modeloIngrediente.getStock());
					frmIngredientes.getLblDescripcionEntrada().setText(modeloIngrediente.getDescripcion());
					frmIngredientes.habilitarEntrada();
				}
				else
					frmIngredientes.mostrarMensaje("Codigo registrado");
			}
			else
				frmIngredientes.mostrarMensaje("Codigo vacio");
			
		}
		else if(evt.getActionCommand().equals("CancelarE")){
			frmIngredientes.limpiarEntrada();
			frmIngredientes.bloquearEntrada();
		}
		else if(evt.getActionCommand().equals("Procesar")){
			if(!frmIngredientes.getTxtCodigoIngrediente().getText().isEmpty() && !frmIngredientes.getTxtCantidad().getText().isEmpty())
			{
				modeloIngrediente.setCodigo(frmIngredientes.getTxtCodigoIngrediente().getText());
				modeloIngrediente.setStatus("A");
				modeloIngrediente.setStock(modeloIngrediente.getStock() + Double.parseDouble(frmIngredientes.getTxtCantidad().getText()));
				if(modeloIngrediente.actualizar()){
					frmIngredientes.limpiarEntrada();
					frmIngredientes.limpiarNuevo();
					frmIngredientes.bloquearEntrada();
					cargarTabla();
					frmIngredientes.mostrarMensaje("Compra registrada");
				}
				else
					frmIngredientes.mostrarMensaje("Codigo registrado");
			} 
			else
				frmIngredientes.mostrarMensaje("Campos vacios");
			
			
		}
		
	}

}
